草庐IT

LeetCode-400. 第N位数字

全部标签

【leetcode】622. 设计循环队列(Circular Queue)

文章目录1.怎么设计循环队列?2.数组实现循环队列往期相关文章推荐:1.队列(Queue)2.栈(Stack)之浅谈数组和链表实现栈各自的优缺点3.线性表之链表(LinkedList)4.线性表之顺序表(SequenceList)1.怎么设计循环队列?  循环队列也叫环形队列,可以用数组或循环链表实现,使用场景是在那种只需要固定空间大小,且一直有插入删除的情况。设计循环队列最大的问题是怎么确定队列是空还是满的状态,如果是增加额外变量size记录数据个数,则很容易解决这个问题,不过这里不打算使用size的方式。下面将一步步分析使用数组的方式如何实现,至于循环链表实现队列,看似天然循环,实际还是很

算法沉淀——递归(leetcode真题剖析)

算法沉淀——递归01.汉诺塔问题02.合并两个有序链表03.反转链表04.两两交换链表中的节点05.Pow(x,n)递归是一种通过调用自身的方式来解决问题的算法。在递归算法中,问题被分解为更小的相似子问题,然后通过对这些子问题的解进行组合来解决原始问题。递归算法通常包含两个主要部分:基本情况(BaseCase):定义问题的最小规模,直接解答而不再进行递归。基本情况是递归算法的出口,防止算法陷入无限递归。递归步骤:在问题规模较大时,将问题划分为相似但规模较小的子问题,并通过递归调用解决这些子问题。递归调用自身是递归算法的核心。递归算法在解决许多问题上非常强大,尤其是对于那些可以通过分解为子问题并

LeetCode2560. House Robber IV——二分答案+动态规划

文章目录一、题目二、题解一、题目Thereareseveralconsecutivehousesalongastreet,eachofwhichhassomemoneyinside.Thereisalsoarobber,whowantstostealmoneyfromthehomes,butherefusestostealfromadjacenthomes.Thecapabilityoftherobberisthemaximumamountofmoneyhestealsfromonehouseofallthehousesherobbed.Youaregivenanintegerarraynum

【动态规划】【中位数】【C++算法】1478. 安排邮筒

#作者推荐【深度优先搜索】【树】【图论】2973.树中每个节点放置的金币数目本文涉及知识点动态规划汇总LeetCode1478.安排邮筒给你一个房屋数组houses和一个整数k,其中houses[i]是第i栋房子在一条街上的位置,现需要在这条街上安排k个邮筒。请你返回每栋房子与离它最近的邮筒之间的距离的最小总和。答案保证在32位有符号整数范围以内。示例1:输入:houses=[1,4,8,10,20],k=3输出:5解释:将邮筒分别安放在位置3,9和20处。每个房子到最近邮筒的距离和为|3-1|+|4-3|+|9-8|+|10-9|+|20-20|=5。示例2:输入:houses=[2,3,5

算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习一(leetcode真题剖析)

算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习一01.全排列02.子集03.找出所有子集的异或总和再求和04.全排列II05.电话号码的字母组合01.全排列题目链接:https://leetcode.cn/problems/permutations/给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。示例1:输入:nums=[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例2:输入:nums=[0,1]输出:[[0,1],[1,0]]示例3:输入:nums=[1]输出:[[1]]提示:1

小白水平理解面试经典题目LeetCode 1025 Divisor Game【动态规划】

1025除数游戏小艾和小鲍轮流玩游戏,小艾首先开始。最初,黑板上有一个数字n。在每个玩家的回合中,该玩家做出的动作包括:选择任意x,使0将黑板上的数字n替换为n-x。此外,如果玩家无法采取行动,他们就会输掉比赛。当且仅当小艾赢得游戏时返回true,假设两个玩家都发挥最佳。例子在大学某个自习的下午,小白坐在教室看到这道题。想想现年景一过,没有什么理由再不学习了。真是若对黄花孤负酒,怕黄花,也笑人岑寂。这时候黑长直女神过来问:小白,你看到1025这道题了吗,怎么感觉看着很简单,但是理解起来很麻烦啊,这道题你有什么思路呢?小白内心镇定:这机会不就来了吗,小美,《一起摇太阳》有机会一起去看看吧?哦,不

Leetcode_Master Day2

day2977.有序数组的平方题目链接:977.有序数组的平方给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序题解思路暴力法平方完再排序,时间复杂度为O(nlogn)classSolution{publicint[]sortedSquares(int[]nums){int[]ans=newint[nums.length];for(inti=0;inums.length;++i){ans[i]=nums[i]*nums[i];}Arrays.sort(ans);returnans;}}双指针法根据示例,对于数组存在负数的情况,平方的非递减排序可能

C#,二进制数的非0位数统计(Bits Count)的算法与源代码

计算一个十进制数的二进制表示有多少位1?1遍历法(递归或非递归)使用循环按位统计1的个数。2哈希查表法利用一个数组或哈希生成一张表,存储不同二进制编码对应的值为1的二进制位数,那么在使用时,只需要去进行查询,即可在O(1)的时间复杂度内得到结果。但是,此算法有个弊端,由于算法是采用空间换取时间的方法,当一个二进制数的位长超过一定限度时,对应的表也就会占据很大的空间,也就是说节约时间越多,花费的存储越多。另外此方法还会收到CPU缓存的限制,如果表太大,表在缓存的上下文切换也就越多,可能会导致性能没有想象中那么高。所以,为了解决此问题,一般情况下,采用适当的二进制位长度来建表,比如8位、16位,这

LeetCode:102. 二叉树的层序遍历

🍎道阻且长,行则将至。🍓🌻算法,不如说它是一种思考方式🍀算法专栏:👉🏻123可以参考👉LeetCode:二叉树的前、中、后序遍历——如何创建一棵【二叉树】一、🌱102.二叉树的层序遍历题目描述:给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。来源:力扣(LeetCode)难度:中等提示:树中节点数目在范围[0,2000]内-1000示例🌴解题1.递归法也就是使用先序遍历,根据对每一层的深度来考虑增加集合元素,原理是很简单的,判断好递归何时结束即可。code:classSolution{publicListListInteger>>levelOrder(T

算法沉淀——BFS 解决最短路问题(leetcode真题剖析)

算法沉淀——BFS解决最短路问题(leetcode真题剖析)01.迷宫中离入口最近的出口02.最小基因变化03.单词接龙04.为高尔夫比赛砍树BFS(广度优先搜索)是解决最短路径问题的一种常见算法。在这种情况下,我们通常使用BFS来查找从一个起始点到目标点的最短路径。具体步骤如下:初始化:从起始点开始,将其放入队列中,并标记为已访问。BFS遍历:不断从队列中取出顶点,然后探索与该顶点相邻且未被访问的顶点。对于每个相邻顶点,将其标记为已访问,并将其加入队列。这样,每一轮BFS都会探索到当前距离起始点的步数更多的顶点。重复步骤2:重复这个过程,直到找到目标点或者队列为空。路径重建(可选):如果需要